package com.cs.beneficios.business.entity;

import com.cs.paoyer.administration.business.model.ContractVO;
//import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Vector;
import javax.ejb.EJBLocalObject;

import com.cs.paoyer.administration.business.model.FDClassVO;
import com.cs.paoyer.administration.business.model.FDTypeVO;
import com.cs.paoyer.administration.business.model.UserVO;
import com.cs.paoyer.administration.business.model.ApplicationVO;
import com.cs.paoyer.administration.business.model.UserGroupVO;
import com.cs.paoyer.administration.business.model.OptionVO;
import com.cs.paoyer.administration.business.model.ProgramVO;
import com.cs.paoyer.administration.business.model.ProgramParameterVO;
import com.cs.paoyer.administration.business.model.UserGroupOptionVO;
import com.cs.paoyer.administration.business.model.ApplicationUserVO;
import com.cs.paoyer.administration.business.model.FlexValueVO;
import com.cs.paoyer.administration.business.model.FDVO;
import com.cs.paoyer.administration.business.model.AuthorizedByBranchVO;
import com.cs.paoyer.administration.business.model.WarehouseByBranchVO;
import com.cs.paoyer.administration.business.model.CostCenterByAuthorizedVO;
import com.cs.paoyer.common.exception.UserException;
import com.cs.paoyer.common.exception.SystemException;

public interface AdministrationFacadeLocalLocal extends EJBLocalObject {
	public String getMenu(String strUserGroup, String strPath)
			throws UserException, SystemException;

	public Vector getResources(UserVO user) throws UserException,
			SystemException;

	public UserVO userGroup(UserVO user) throws UserException, SystemException;

	public UserVO authenticateUser(UserVO user) throws UserException,
			SystemException;

	public Collection findUserByCriterea(UserVO criterea) throws UserException,
			SystemException;

	public boolean createUser(UserVO user) throws UserException,
			SystemException;

	public boolean updateUser(UserVO user) throws UserException,
			SystemException;

	public boolean deleteUser(UserVO user) throws UserException,
			SystemException;

	public ApplicationVO createApplication(ApplicationVO application)
			throws UserException, SystemException;

	public Collection findApplicationByCriterea(ApplicationVO criterea)
			throws UserException, SystemException;

	public int updateApplication(ApplicationVO criterea) throws UserException,
			SystemException;

	public int deleteApplication(ApplicationVO criterea) throws UserException,
			SystemException;

	public UserGroupVO createUserGroup(UserGroupVO userGroup)
			throws UserException, SystemException;

	public Collection findUserGroupByCriterea(UserGroupVO userGroup)
			throws UserException, SystemException;

	public UserGroupVO updateUserGroup(UserGroupVO userGroup)
			throws UserException, SystemException;

	public void deleteUserGroup(UserGroupVO userGroup) throws UserException,
			SystemException;

	public OptionVO createOption(OptionVO option) throws UserException,
			SystemException;

	public Collection findOptionByCriterea(OptionVO option)
			throws UserException, SystemException;

	public OptionVO updateOption(OptionVO option) throws UserException,
			SystemException;

	public void deleteOption(OptionVO option) throws UserException,
			SystemException;

	public ProgramVO createProgram(ProgramVO program) throws UserException,
			SystemException;

	public Collection findProgramByCriterea(ProgramVO program)
			throws UserException, SystemException;

	public ProgramVO updateProgram(ProgramVO program) throws UserException,
			SystemException;

	public void deleteProgram(ProgramVO program) throws UserException,
			SystemException;

	public ProgramParameterVO createProgramParameter(
			ProgramParameterVO programParameter) throws UserException,
			SystemException;

	public Collection findProgramParameterByCriterea(
			ProgramParameterVO programParameter) throws UserException,
			SystemException;

	public ProgramParameterVO updateProgramParameter(
			ProgramParameterVO programParameter) throws UserException,
			SystemException;

	public void deleteProgramParameter(ProgramParameterVO programParameter)
			throws UserException, SystemException;

	public UserGroupOptionVO createUserGroupOption(
			UserGroupOptionVO userGroupOption) throws UserException,
			SystemException;

	public Collection findUserGroupOptionByCriterea(
			UserGroupOptionVO userGroupOption) throws UserException,
			SystemException;

	public UserGroupOptionVO updateUserGroupOption(
			UserGroupOptionVO userGroupOption) throws UserException,
			SystemException;

	public void deleteUserGroupOption(UserGroupOptionVO userGroupOption)
			throws UserException, SystemException;

	public Collection findNotAsociatedOptionByCriterea(
			UserGroupOptionVO userGroupOption) throws UserException,
			SystemException;

	public boolean asociateOptionToUserGroup(UserGroupOptionVO userGroupOption)
			throws UserException, SystemException;

	public ApplicationUserVO createApplicationUser(
			ApplicationUserVO applicationUser) throws UserException,
			SystemException;

	public Collection findApplicationUserByCriterea(
			ApplicationUserVO applicationUser) throws UserException,
			SystemException;

	public Collection findUserNotAsociatedByCriterea(ApplicationUserVO criterea)
			throws UserException, SystemException;

	public ApplicationUserVO updateApplicationUser(
			ApplicationUserVO applicationUser) throws UserException,
			SystemException;

	public void deleteApplicationUser(ApplicationUserVO applicationUser)
			throws UserException, SystemException;

	public FlexValueVO createFlexValue(FlexValueVO flexValue)
			throws UserException, SystemException;

	public Collection findFlexValueByCriterea(FlexValueVO flexValue)
			throws UserException, SystemException;

	public boolean updateFlexValue(FlexValueVO flexValue) throws UserException,
			SystemException;

	public boolean deleteFlexValue(FlexValueVO flexValue) throws UserException,
			SystemException;

	public Collection findFlexValueTypeByCriterea(FlexValueVO criterea)
			throws UserException, SystemException;

	public FlexValueVO createFlexValueType(FlexValueVO flexValueType)
			throws UserException, SystemException;

	public boolean updateFlexValueType(FlexValueVO flexValueType)
			throws UserException, SystemException;

	public boolean deleteFlexValueType(FlexValueVO flexValueType)
			throws UserException, SystemException;

	// Consultas
	public Collection findInventoryByCriterea(FDVO criterea)
			throws UserException, SystemException;

	public Collection findContractByCriterea(ContractVO criterea)
			throws UserException, SystemException;

	public Collection findAuthorizedBranchByCriterea(
			AuthorizedByBranchVO authorizedByBranch)

	throws UserException, SystemException;

	public Collection findWarehouseBranchByCriterea(
			WarehouseByBranchVO warehouseByBranch) throws UserException,
			SystemException;

	public Collection findCostCenterAuthorizedByCriterea(
			CostCenterByAuthorizedVO costCenterByAuthorized)
			throws UserException, SystemException;

	public Collection findFDClassByCriterea(FDClassVO fdClass)
			throws UserException, SystemException;

	public Collection findFDTypeByCriterea(FDTypeVO fdType)
			throws UserException, SystemException;

	public Collection findFDHistoryByCriterea(FDVO fdVO) throws UserException,
			SystemException;

}